package panes;

import events.LoadXmlEvent;
import events.StopEvent;
import java.io.IOException;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.control.Tooltip;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;

/**
 * Painel contendo a caixa com o caminho do arquivo XML juntamente com o 
 * botão Play. Quando o botão play é clicado, um evento é disparado e 
 * a aplicação principal cuida do resto.
 */
public class FileLoaderPane extends HBox {

    public FileLoaderPane() {
        setId("FileLoader");
        setPadding(new Insets(5));
        setSpacing(8);
        setStyle("-fx-background-color: #eeeeee;");
        
        //Caixa de texto com o link para o XML
        final TextField fileInput = new TextField();
        fileInput.setId("fileInput");
        fileInput.setTooltip(new Tooltip("Informe o caminho completo do arquivo XML"));
        
        String xmlPath="";
        try {
            xmlPath = new java.io.File(".").getCanonicalPath();
            xmlPath += "\\animacao\\ssmlData.xml";
            
        } catch (IOException ex) {
            System.out.println("Erro ao obter o caminho do projeto: " + ex.getLocalizedMessage());
        }
        fileInput.setText(xmlPath);
        getChildren().add(fileInput);
        
        
        //Botão para disparar o evento para carregar o XML
        Button btnPlay = new Button();
        btnPlay.setText("Play");
        btnPlay.setOnMousePressed(new EventHandler<MouseEvent>(){
             public void handle(MouseEvent me) {
                    LoadXmlEvent e = new LoadXmlEvent(); 
                    e.setPath(fileInput.getText());
                    fireEvent(e);
                }
        });
        getChildren().add(btnPlay);
        
        //Botão para disparar o evento de para tudu
        Button btnStop = new Button();
        btnStop.setText("Stop");
        btnStop.setOnMousePressed(new EventHandler<MouseEvent>(){
             public void handle(MouseEvent me) {
                    fireEvent(new StopEvent());
                }
        });
        getChildren().add(btnStop);
        
        
        //Diz que o fileInput é 100% de width
        setHgrow(fileInput, Priority.ALWAYS);
        
    }
}
